package com.zenithmind.mall.pojo.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 评价统计VO
 * 
 * @author ZenithMind Team
 * @since 2025-06-09
 */
@Data
public class ReviewStatisticsVO {

    /**
     * 商品ID
     */
    private String productId;

    /**
     * 总评价数
     */
    private Long totalCount;

    /**
     * 平均评分
     */
    private BigDecimal averageRating;

    /**
     * 好评率（4-5星的比例）
     */
    private BigDecimal positiveRate;

    /**
     * 各星级评价数量
     */
    private List<RatingCount> ratingCounts;

    /**
     * 有图评价数量
     */
    private Long imageReviewCount;

    /**
     * 最新评价列表（前3条）
     */
    private List<ProductReviewVO> latestReviews;

    /**
     * 热门评价列表（前3条）
     */
    private List<ProductReviewVO> hotReviews;

    /**
     * 星级评价数量统计
     */
    @Data
    public static class RatingCount {
        /**
         * 星级（1-5）
         */
        private Integer rating;

        /**
         * 该星级的评价数量
         */
        private Long count;

        /**
         * 该星级的评价比例
         */
        private BigDecimal percentage;

        public RatingCount(Integer rating, Long count, BigDecimal percentage) {
            this.rating = rating;
            this.count = count;
            this.percentage = percentage;
        }
    }
}
